package com.ruoyi.easyfame.service.impl;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.easyfame.mapper.QnaMapper;
import com.ruoyi.easyfame.domain.Qna;
import com.ruoyi.easyfame.service.IQnaService;

/**
 * 专家问答Service业务层处理
 * 
 * @author xhb
 * @date 2025-08-19
 */
@Service
public class QnaServiceImpl implements IQnaService 
{
    @Autowired
    private QnaMapper qnaMapper;
    @Autowired
    private ISysUserService userService;

    /**
     * 查询专家问答
     * 
     * @param id 专家问答主键
     * @return 专家问答
     */
    @Override
    public Qna selectQnaById(Long id)
    {
        return qnaMapper.selectQnaById(id);
    }

    /**
     * 查询专家问答列表
     * 
     * @param qna 专家问答
     * @return 专家问答
     */
    @Override
    public List<Qna> selectQnaList(Qna qna)
    {
        return qnaMapper.selectQnaList(qna);
    }

    /**
     * 新增专家问答
     * 
     * @param qna 专家问答
     * @return 结果
     */
    @Override
    public int insertQna(Qna qna)
    {
        qna.setCreateTime(DateUtils.getNowDate());
        if (qna.getExpertId() != null) {
            SysUser expert = userService.selectUserById(qna.getExpertId());
            if (expert != null) {
                qna.setExpertName(expert.getNickName());
            }
        }
        return qnaMapper.insertQna(qna);
    }

    /**
     * 修改专家问答
     * 
     * @param qna 专家问答
     * @return 结果
     */
    @Override
    public int updateQna(Qna qna)
    {
        qna.setUpdateTime(DateUtils.getNowDate());
        return qnaMapper.updateQna(qna);
    }

    /**
     * 批量删除专家问答
     * 
     * @param ids 需要删除的专家问答主键
     * @return 结果
     */
    @Override
    public int deleteQnaByIds(Long[] ids)
    {
        return qnaMapper.deleteQnaByIds(ids);
    }

    /**
     * 删除专家问答信息
     * 
     * @param id 专家问答主键
     * @return 结果
     */
    @Override
    public int deleteQnaById(Long id)
    {
        return qnaMapper.deleteQnaById(id);
    }
}
